/**
 * @description: 下载文件
 * @param {string} url 下载地址
 * @param {Object} params 拼接参数
 * @return {*}
 */
import { getToken } from '@/utils/auth'

export function downloadFile(apiUrl: string, params: any): void {
  const url = spliceUrl(apiUrl, params)
  const linkTag: HTMLAnchorElement = document.createElement('a')
  linkTag.href = url
  document.body.appendChild(linkTag)
  linkTag.click()
  document.body.removeChild(linkTag)
}

/**
 * @description: 拼接下载地址
 * @param {string} apiUrl
 * @param {any} params
 * @return {string} url 下载地址
 */
function spliceUrl(apiUrl: string, params: any) {
  // host地址
  let domainUrl: string
  switch (import.meta.env.MODE) {
    case 'development':
      domainUrl = 'http://139.198.172.231:8490'
      break
    case 'production':
      // domainUrl = import.meta.env.VITE_API_DOMAIN as string
      domainUrl = 'http://' + window.location.host
      break
    default:
      domainUrl = ''
      break
  }

  // api 和 token 拼接
  const token = getToken()
  apiUrl += '?token=' + token

  // 参数拼接
  let queryUrl = ''
  for (const item in params) {
    queryUrl += '&' + item + '=' + params[item]
  }
  // 下载地址
  const url: string = domainUrl + apiUrl + queryUrl
  return url
}
